﻿

/////////////////////////////////////////////////////////////////////////////////
///              ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO                   ///
///                        PROYECTO INTEGRADOR IV                            /// 
///                         PROYECTO SICOPS 2011                              /// 
/// ------------------------------------------------------------------------- ///  
///              **********GRUPO DE DESARROLLADORES**********                 ///
///                 ************PEGASO COMPANY**************                    /// 
///---------------------------------------------------------------------------///
///                                                         RIOBAMBA-ECUADOR  ///
///---------------------------------------------------------------------------///
///                FORMULARIO ADMINISTRACION DE CUENTAS                        ///
///---------------------------------------------------------------------------///
///Permite controlar las cuentas de los usuarios                             ///
///                                           Responsable:  Pineda Marco   ///
/////////////////////////////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogisticaDeAcceso;
using System.IO;

//Formulario de Administracion de cuentas
//Para la creacion y modificacion de usuarios que puedadn manejar la aplicacion

namespace Aplicacion.Formularios
{
    public partial class frmCuentasUsuario : Form
    {


        public frmCuentasUsuario()
        {
            InitializeComponent();
        }

        private string auxNombreCuenta;//////////////Nombre de la cuenta actual
        private string auxTipoCuenta;////////////////Tipo de lacuenta
        private byte[] auxBytes;/////////////////////Imgen traducida en byts
        private string auxConeccion;/////////////////Direccion de la base de datos

        private bool vgloBandera = true;//variable de control de casilleros para el control de espacios en este caso
        private DataTable dt = new DataTable();//Variable para la creacion de una tabla virtual para el
        //ingreso de datos tipo image


        public frmCuentasUsuario(string Nom, string tipo, byte[] bytes, string Con)
        {
            //Inicializador de de las variables 
            InitializeComponent();
            auxNombreCuenta = Nom;
            auxTipoCuenta = tipo;
            auxBytes = bytes;
            auxConeccion = Con;
        }

        public void metMosImagenIni()
        {
            this.coleccionDeDatos2.vs_MostrarImgen.Clear();
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            //Metodo de acceso para la busqueda de imgenes de cada uno de las cuentas
            //este metodo esta diseñado para el control de los ususarios con un determinado
            //numero de permisos de esta manera se impedira que los usuarios puedan 
            //alterar imgenes de otras cuentas sin el permiso         
            auxCom.metMostrarDatos(auxConeccion, this.coleccionDeDatos2);

            DataTable miTabla = coleccionDeDatos2.tAdministracion;//Tabla de administracion
            DataRowCollection cFilas = miTabla.Rows;//Filas de la tabla seleccionada
            DataRow[] filaBuscada;//se almacenara la fila encontrada


            string Criterio = "txtNomCuenta Like'" + auxNombreCuenta + "'";//Criterio de busqueda
            filaBuscada = miTabla.Select(Criterio);//Activar funcion de ejecucion delk criterio
            int i, j;
            for (i = 0; i == filaBuscada.GetUpperBound(0); i++)
            {
                auxBytes = ((byte[])(filaBuscada[i][10]));//Si la fila coinside la variable acoje 
                //la imagen codificada en un sistema byte[]

                for (j = 0; j == (cFilas.Count - 1); j++)
                {
                    if (cFilas[j].Equals(filaBuscada[i]))
                        BindingContext[coleccionDeDatos2, "tAdministracion"].Position = j;//Este es el posicionador 
                    //seguira recorriendo las filas hasta que encuentre si no encuentra el for termina su 
                    //operacion y sale del bucle
                }
            }
        }


        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void metRefrescarAplicacion()
        {
            //Este metodo refresca todos los casilleros de la aplicacion
            //se utiliza para un ingreso nuevo 
            txtNomUsuarioCco.Clear();
            txtApeUsuarioCco.Clear();
            txtClaveOriginalCco.Clear();
            txtConfirmacionNewCco.Clear();
            txtNombreCuentaCco.Clear();
            txtPalabraSecretaCco.Clear();
            txtNomUsuarioCco.Focus();
            btnCancelarCco.Enabled = false;
        }
        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////

        private void metControlIngreso()
        {
            //Control de ingreso a la base de datos porque no se puede ingresar datos nulos este metodo
            //controla que todo lo casilleros esten con datos
            if (txtNomUsuarioCco.Text.Length > 2 && txtApeUsuarioCco.Text.Length > 2 && txtClaveOriginalCco.Text.Length > 1 && txtConfirmacionNewCco.Text.Length > 1 && txtNombreCuentaCco.Text.Length >= 2 && txtPalabraSecretaCco.Text.Length >= 2)
                btnAceptarCuentaCco.Enabled = true;
            else
                btnAceptarCuentaCco.Enabled = false;
        }


        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void frmCuentasUsuario_Load(object sender, EventArgs e)
        {
            btnCambiarNom.Enabled = false;
            btnAceptarCambio.Enabled = false;
            metPantallaBienvenida();//En esta pantalla existen varios contenedores uno de ellos es el principal
            //porque de alli se llaman a los demas al iniciar este form 
            //se activa el primer contenedor y desde alli se puede
            //navegar con los demas
            btnAceptarCuentaCco.Enabled = false;
            btnCancelarCco.Enabled = false;
            btnNuevaCuentaCco.Visible = false;
            tlsTipoCuentaRes.Text = auxTipoCuenta;
            tlsNombreCuenta.Text = auxNombreCuenta;
            metMostrarImagenes();
            ///else
                
           //metodo que presenta las imagenes dependiendo de la cuenta
           //Si no ingresa en niguno de estos la cuenta es de administrador y tiene todos lo 
            //privilegios de cuenta y de trabajo
            //activa la imagens del data set local
            btnAceptarEstado.Enabled = false;
           //metodo para la autentificacion de secretarias
            if (auxTipoCuenta != "Administrador")
                metCuentasUsuarios(); //metodo de autentificacion de otro usuarios  
            else
                lklEliminarCuentas.Enabled = true;
            txtObservacionesEs.Enabled = false;
        }

        //Habilitar todas la opciones de acceso de para la caracteristica de secretaria
        private void metCuentasUsuarios()
        {
            metCuentasSecretarias();
            txtNomUsuarioCco.Enabled = false;
            txtApeUsuarioCco.Enabled = false;
            txtClaveOriginalCco.Enabled = false;
            txtConfirmacionNewCco.Enabled = false;
            txtNombreCuentaCco.Enabled = false;
            cmbTipoCuentaCco.Enabled = false;
            txtPalabraSecretaCco.Enabled = false;
            lklImagen.Enabled = false;
            metBloqueoEstado();//metodo para que el contenedor del cambio de estado no se aplique a ningun otro usuario que no sea 
            // de tipo administrador
        }
        //Bloqueo de accesos
        private void metBloqueoEstado()
        {
            cmbCuentasEs.Enabled = false;
            txtEstadoActualEs.Enabled = false;
            btnAceptarEstado.Enabled = false;
            cmbNuevoEstadoEs.Enabled = false;
        }

        private void metCuentasSecretarias()//se desabilita todo lo que no pueda manejar el 
            //tipo de cuenta de secretaria
        {
            cmbNombreCuentaCi.Text = auxNombreCuenta;
            cmbNombreCuentaCi.Enabled = false;
            metImagenesIngreso();
            cmbCuentasEs.Text = auxNombreCuenta;
            cmbCuentasEs.Enabled = false;
            cmbCuentaCc.Text = auxNombreCuenta;
            cmbCuentaCc.Enabled = false;
            cmbNombreCuentaCn.Text = auxNombreCuenta;
            cmbNombreCuentaCn.Enabled = false;
            cmbCuentasBC.Text = auxNombreCuenta;
            cmbCuentasBC.Enabled = false;
        }
        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
       /* private void metMostrarEstados()
        {
            //Este metodo actualiza el dataset que se llama colecciondedatos
            //se utiliza para mostrar datos
            ClasesDeAcceso.clsAdministracion auxAcceso = new ClasesDeAcceso.clsAdministracion();
            auxAcceso.metMostrarDatos(auxConeccion);
            auxAcceso.metActivaMostrarD(coleccionDeDatos2);
        }*/
        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////


        private void comCuentasEs_Click(object sender, EventArgs e)
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metMostrarEstados(auxConeccion,this.coleccionDeDatos2);
            
            //metMostrarEstados();//Llamado al metodo que permite visualizar los datos
        }

        private void comCuentasEs_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;//Impide que se escriba el combo de cuentas
        }

        private void comNuevoEstadoEs_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;//Impide que se escriba el combo de cuentas de estado
        }
        
 /// ///////////////////////////////////////////////////////////////////////////////////////////////////    

        private void btnAceptarCambio_Click(object sender, EventArgs e)
        {
            //Llamado al metodo de comprovacion de contraseñas si el resultado es verdadero
            //se realiza el cambio de contraseña caso contrario no se asignara el cambio
            if (MessageBox.Show("¿Desea continuar con el cambio de la contraseña?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (metComprobar() == true)
                {
                    Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
                    auxCom.metCambiarContraseña(auxConeccion, cmbCuentaCc.Text, txtClaveActualCc.Text, txtConfirmacionCc.Text);
                    // ejecucion del procedimiento
                    metRefresCampoCc();
                }
                else
                    MessageBox.Show("Error en el ingreso de las contraseñas, no coinciden.", "Error");
                metMostrarImagenes();
            }
        }
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////////
       
        
        private void comCuentaCc_Click(object sender, EventArgs e)
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metMostrarEstados(auxConeccion, this.coleccionDeDatos2);
            //metMostrarEstados();//Llamado al metodo que permite visualizar los datos
        }


        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public bool metComprobar()
        { 
            //Metodo de comprovacion entre la nueva clave y la confirmacion
            bool varBandera;
            if (txtContraseñaCc.Text == txtConfirmacionCc.Text)
                varBandera = true;
            else
                varBandera = false;
            return varBandera;
        }
        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void textContraseñaCc_KeyDown(object sender, KeyEventArgs e)
        {
            //Si el usuario presiona enter el foco salta 
            //a la siguiente casilla en este caso la casilla 
            //de confirmacion de contraseña
            if (e.KeyCode == Keys.Enter)
                txtConfirmacionCc.Focus();
            metActivarB();
  
        }

        private void metActivarB()
        {//Control de ingreso en las contraseñas
            if (metControlLetras(txtContraseñaCc.Text, 2) == true && metControlLetras(txtConfirmacionCc.Text, 2) == true && metControlLetras(txtClaveActualCc.Text, 2) == true)
                btnAceptarCambio.Enabled = true;
            else
                btnAceptarCambio.Enabled = false;
        }

        private void textConfirmacionCc_KeyDown(object sender, KeyEventArgs e)
        {
            //En las asillas de verificacion se comprueba que las nuevas claves sea las correctas
            //cuando se presiona enter en la ultima casilla se verifica si coinciden 
            //el boton de aceptar es presionado automaticamente
            if (e.KeyCode == Keys.Enter)
                if (metComprobar() != true)//se le hace un llamado al metodo que comprueba si las claves son iguales
                {
                    MessageBox.Show("Las contraseñas no coinciden, vuelva a intentarlo", "Alerta");
                    txtConfirmacionCc.Clear();
                    txtContraseñaCc.Clear();
                    txtContraseñaCc.Focus();
                }
                else
                    btnAceptarCambio.PerformClick();//Presion automatica del boton Aceptar el cambio de contraseña

            metActivarB();
        }
        //Metodo que refresca el campo de cambio de contraseñas 
        private void metRefresCampoCc()
        {
            //Limpiar los datos para nuevos ingreso
            txtConfirmacionCc.Clear();
            txtContraseñaCc.Clear();
            txtClaveActualCc.Clear();
            txtClaveActualCc.Focus();
            btnAceptarCambio.Enabled = false;
        
        }

       
        private void textClaveActualCc_KeyDown(object sender, KeyEventArgs e)
        {
            //Si el usuario presiona enter el foco salta 
            //a la siguiente casilla en este caso la casilla 
            //de contraseña nueva
            if (e.KeyCode == Keys.Enter)
                txtContraseñaCc.Focus();

            metActivarB();
        }

        private void btnAceptarBusquedaBc_Click(object sender, EventArgs e)
        {
            //En este boton se configura y se ejecuta la busqueda de claves perdidas
            //con el ingreso de la palabra secreta y del nombre de cuenta 
            //si no se ingresa correctamente una de ellas no existe resultado
            string Clave="";
            string Observaciones="";
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            String[] auxCole=auxCom.metBuscarClave(auxConeccion, cmbCuentasBC.Text, txtPalabraSecretaBc.Text, Clave, Observaciones);
            //Ejecucion del metodo
            txtClaveBc.Text = auxCole[0];//Se imprime la clave encontrada
            txtObservacionesBc.Text = auxCole[1];//Si tiene alguna observacion
        }

        private void comCuentasBc_Click(object sender, EventArgs e)
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metMostrarEstados(auxConeccion, this.coleccionDeDatos2);
            //metMostrarEstados();////Llamado al metodo que permite visualizar los datos
        }

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarEstado();//Llamado al contenedor que permite alterar el estado de una cuenta
        }

        private void metCambiarEstado()
        {
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            //////Para cambiar el estado de la cuenta
            splBienvenida.Visible = false;
            splBuscarContraseña.Visible = false;
            splCambioContraseña.Visible = false;
            splEstadoCuenta.Visible = true;
            splCambiarNombre.Visible = false;
            splNuevaCuenta.Visible = false;
            splCambiarImagen.Visible = false;
            metPresentaEstados();//Activa el estado de la cuenta.
            txtObservacionesEs.Clear();
           
        }

        private void metPresentaEstados()
        {
            //metodo que presenta ele estado de la cuenta.
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            txtEstadoActualEs.Text = auxCom.metPresentaEstados(auxConeccion, cmbCuentasEs.Text);
        }
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////ññ558
        private void metCambiarImagen()
        {
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            //  Para cambiar la imagen
            splBienvenida.Visible = false;
            splBuscarContraseña.Visible = false;
            splCambioContraseña.Visible = false;
            splEstadoCuenta.Visible = false;
            splCambiarNombre.Visible = false;
            splNuevaCuenta.Visible = false;
            splCambiarImagen.Visible = true;
        }

        private void linCambiarContraseña_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarContraseña();//Llamado al contenedor que permite alterar la contraseña
        }
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void metCambiarContraseña()
        {
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            ////Para cambiar la contraseña de una cuenta ya creada
            splBienvenida.Visible = false;
            splBuscarContraseña.Visible = false;
            splCambioContraseña.Visible = true;
            splEstadoCuenta.Visible = false;
            splCambiarNombre.Visible = false;
            splNuevaCuenta.Visible = false;
            splCambiarImagen.Visible = false;
            cmbCuentasBC.Focus();
            txtPalabraSecretaBc.Clear();
            txtClaveBc.Clear();
            txtObservacionesBc.Clear();
            metRefresCampoCc();

        }
        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////DDDD45

        private void linBuscarContrase_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metBusquedaContraseña();//Llamado al contenedor que permite buscar la contraseña perdida u olvidada
        }

        private void metBusquedaContraseña()
        {
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            //para la busqueda de una contraseña olvidada
            splBienvenida.Visible = false;
            splBuscarContraseña.Visible = true;
            splCambioContraseña.Visible = false;
            splEstadoCuenta.Visible = false;
            splCambiarNombre.Visible = false;
            splNuevaCuenta.Visible = false;
            splCambiarImagen.Visible = false;
            txtPalabraSecretaBc.Clear();

        }

        private void linCambiarNombre_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarNombre();//Llamado al contenedor que permite cambiar el nombre de cuenta
        }

        private void metCambiarNombre()
        {
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            //para cambiar el nombre de una cuenta
            splBienvenida.Visible = false;
            splBuscarContraseña.Visible = false;
            splCambioContraseña.Visible = false;
            splEstadoCuenta.Visible = false;
            splCambiarNombre.Visible = true;
            splNuevaCuenta.Visible = false;
            splCambiarImagen.Visible = false;
            txtNuevoNombreCn.Clear();

        }
/// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void metNuevaCuenta()
        {
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            //Crea una nueva cuenta
            splBienvenida.Visible = false;
            splBuscarContraseña.Visible = false;
            splCambioContraseña.Visible = false;
            splEstadoCuenta.Visible = false;
            splCambiarNombre.Visible = false;
            splNuevaCuenta.Visible = true;
            splCambiarImagen.Visible = false;
        }
        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
        }

        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void metPantallaBienvenida()
        {
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            //Para la pantalla de seleccion 
            splBienvenida.Visible = true;
            splCambiarImagen.Visible = false;
            splBuscarContraseña.Visible = false;
            splCambioContraseña.Visible = false;
            splEstadoCuenta.Visible = false;
            splCambiarNombre.Visible = false;
            splNuevaCuenta.Visible = false;

        }
        /// //////////////////////////////////////////////////////////////////////////////////////////////////////////////

        private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarContraseña();//Llamado al contenedor que permite alterar la contraseña
        }

        private void linBusqueda_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metBusquedaContraseña();//Llamado al contenedor que permite buscar la contraseña perdida u olvidada
        }

        private void linBusC_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarContraseña();//Llamado al contenedor que permite alterar la contraseña
        }

        private void linEstadosC_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarEstado();//Llamado al contenedor que permite alterar el estado de una cuenta
        }

        private void linkLabel2_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
 
        }

        private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarNombre();//Llamado al contenedor que permite cambiar el nombre de cuenta
        }

        private void linBusC2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metBusquedaContraseña();//Llamado al contenedor que permite buscar la contraseña perdida u olvidada
        }

        private void linEstadosCueCc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarEstado();//Llamado al contenedor que permite alterar el estado de una cuenta
        }

        private void linInicioCc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
        }

        private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarContraseña();//Llamado al contenedor que permite alterar la contraseña
        }

        private void linkLabel7_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarEstado();//Llamado al contenedor que permite alterar el estado de una cuenta
        }

        private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
 
        }

        private void linBusqueCn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metBusquedaContraseña();//Llamado al contenedor que permite buscar la contraseña perdida u olvidada
        }

        private void linNombreC_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarNombre();//Llamado al contenedor que permite cambiar el nombre de cuenta
        }

        private void linNombreCuenta_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarNombre();//Llamado al contenedor que permite cambiar el nombre de cuenta
        }

        private void btnCancelarAcceso_Click(object sender, EventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
 
        }

        private void button3_Click(object sender, EventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
 
        }

        private void btnCancelarCc_Click(object sender, EventArgs e)
        {
            metPantallaBienvenida();//Llamado al contenedor que permite navegar por todos los cambios de cuenta
 
        }

        private void btnCambiarNom_Click(object sender, EventArgs e)
        {
            //Llamado a la clase administracion en este boton ejecutamos el metodo de cambio de 
            //nombre de la cuenta este metodo ya declarado en la clase
            if (MessageBox.Show("¿Desea continuar con el cambio del nombre de la cuenta?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
                if (auxCom.metCambiarNombreCuenta(auxConeccion, cmbNombreCuentaCn.Text, txtNuevoNombreCn.Text) == "Cerrar")//Ejecucion
                {
                    if ((auxTipoCuenta == "Administrador" && auxNombreCuenta == cmbNombreCuentaCn.Text) || auxTipoCuenta == "Secretaria" || auxTipoCuenta == "Bodeguero" || auxTipoCuenta == "Auditor")
                    {
                        if ((auxTipoCuenta == "Administrador" && auxNombreCuenta == cmbNombreCuentaCn.Text))
                            MessageBox.Show("Tipo de cuenta: Administrador \n Nombre de cuenta: " + auxNombreCuenta + "\n El nombre de la cuenta a cambiado el sistema se reiniciara\n para evitar conflictos con el nuevo nombre de cuenta.");
                        this.DialogResult = DialogResult.OK;
                        this.Close();
                    }
                }
                coleccionDeDatos2.vs_MostrarImgen.Clear();
                metMostrarImagenes();
            }
        }

        private void comNombreCuentaCn_Click(object sender, EventArgs e)
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metMostrarEstados(auxConeccion, this.coleccionDeDatos2);
            //metMostrarEstados();//Llamado al metodo que permite visualizar los datos
        }

        private void linImagen_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metSeleccionarIma(ptbImagen); //Llamado al metodo que selecciona una imagen y la manda como parametro
            // para su transformacion
        }

        private void metSeleccionarIma(PictureBox img)
        {
            //metodo de seleccion de imagen 
            OpenFileDialog Abrir = new OpenFileDialog();
            Abrir.Filter = "JPeg Image|*.jpg";//tipo de achivo que puede buscar
            Abrir.Title = "Seleccion de Imagen de perfil";
            Abrir.RestoreDirectory = true;
            if (Abrir.ShowDialog() == DialogResult.OK)
                img.Image = Image.FromStream(Abrir.OpenFile());//La imagen se dirige hacia el picture box
            // que ingresa como parametro
        }

        private void btnCrearCuenta_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea continuar con el registro de la nueva cuenta?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                btnAceptarCuentaCco.Visible = false;
                btnNuevaCuentaCco.Visible = true;
                if (metMensaje() == true)
                {
                    metIngresoDatosCuenta();//Llamado al metodo que ingresa los datos en la tabla
                    coleccionDeDatos2.vs_MostrarImgen.Clear();
                    metMostrarImagenes();
                }
            }
        }
        private bool metMensaje()
        {
            bool Bal = true;
            //Se genar un mensaje cuando las claves no sean identicas 
            //Contol para el ingreso de una clave
            if (metControl() == true)//Aqui se hace el llamado al metodo de verificacion 
            //true las claves son iguales
            //false conflicto y no permite el ingreso
            {
                btnAceptarCuentaCco.Enabled = false;//
                btnCancelarCco.Enabled = true;
                Bal = true;
            }
            else
            {
                MessageBox.Show("Conflicto en la comprobacion de la clave \n            vuelva a intentarlo", "Atencion");
                txtClaveOriginalCco.Clear();
                txtClaveOriginalCco.Focus();
                txtConfirmacionNewCco.Clear();
                btnAceptarCuentaCco.Visible = true;
                btnNuevaCuentaCco.Visible = false;
                Bal = false;
            }
            return Bal;

        }

        private bool metControl()
        {
            //Metodo de control en el area de las claves verfica que las dos claves ingresadas sean las mismas
            bool Ver = false;
            if (txtClaveOriginalCco.Text == txtConfirmacionNewCco.Text)
                Ver = true;
            return Ver;
        }
/// 
/// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// 
        private void metIngresoDatosCuenta()
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metIngresoDatosCuenta(auxConeccion, txtNombreCuentaCco.Text, txtClaveOriginalCco.Text, txtNomUsuarioCco.Text, txtApeUsuarioCco.Text, cmbTipoCuentaCco.Text, txtPalabraSecretaCco.Text,auxNombreCuenta , ClasesLocales.clsManejoFilas.Image2Bytes(ptbImagen.Image));
            //Este metodo es el que accede a la base de datos por medio de una llamado a la biblioteca de clases
       
        }
          

        private void metAccesoCoherente(KeyPressEventArgs e)
        {
            //Metodo de control de espacios para que los ingresos de los espacios sean coherentes
            //Este metodo trabaja directamente con la clase local
            clsControles.clsControles auxControl = new clsControles.clsControles();
            vgloBandera = auxControl.metControlarEspacios(e, vgloBandera);//Control de espacios
            vgloBandera = auxControl.metPrecionarEspacio(e, vgloBandera);//Control de letras y espacios
        }

        private void comTipoCuenta_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
            //Impedir que se escriba nada en el area de asignacion de tipo de usuarios
        }

        private void textNomUsuario_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            if (e.KeyCode == Keys.Enter)
                txtApeUsuarioCco.Focus();
        }

        private void textApeUsuario_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            if (e.KeyCode == Keys.Enter)
                txtClaveOriginalCco.Focus();
        }

        private void textClaveOriginal_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            if (e.KeyCode == Keys.Enter)
                txtConfirmacionNewCco.Focus();
        }

        private void textConfirmacion_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            //y luego controla si existe coherencia en las claves ingresadas
            if (e.KeyCode == Keys.Enter)
            {
                txtNombreCuentaCco.Focus();
                metMensaje();
            }
        }

        private void textNombreCuenta_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            if (e.KeyCode == Keys.Enter)
                cmbTipoCuentaCco.Focus();
        }

        private void comTipoCuenta_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            if (e.KeyCode == Keys.Enter)
                txtPalabraSecretaCco.Focus();
        }

        private void textNomUsuario_KeyPress(object sender, KeyPressEventArgs e)
        {

            metControlIngreso();//Aqui esta todo el conjunto de casilleros llamando al metodo de control
            metAccesoCoherente(e);//Llamado al metodo de control de espacios

        }

        private void textApeUsuario_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlIngreso();//Aqui esta todo el conjunto de casilleros llamando al metodo de control
            metAccesoCoherente(e);//Llamado al metodo de control de espacios
        }

        private void textClaveOriginal_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlIngreso();//Aqui esta todo el conjunto de casilleros llamando al metodo de control
        }

        private void textConfirmacion_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlIngreso();//Aqui esta todo el conjunto de casilleros llamando al metodo de control
        }

   

        private void textNombreCuenta_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlIngreso();//Aqui esta todo el conjunto de casilleros llamando al metodo de control
            metAccesoCoherente(e);//Llamado al metodo de control de espacios
        }

        private void textPalabraSecreta_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlIngreso();//Aqui esta todo el conjunto de casilleros llamando al metodo de control
            metAccesoCoherente(e);//Llamado al metodo de control de espacios
        }

      

        private void linCambioContNc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarContraseña();//Llamado al metodo para cambiar la contraseña
        }

        private void linEstadoCuenNc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarEstado();//Llamado al metodod que cambia el estado de cuenta
        }

        private void linBusquedaContNc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metBusquedaContraseña();//Llamado al metodo para cambiar la contraseña
        }

        private void linCambiarNombreNc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarNombre();//Llamado al metodo de cambio de nobre de cuenta
        }

        private void linInicioNc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metPantallaBienvenida();
        }

        private void linCrearNewCuenta_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metNuevaCuenta();//Llamado al metodo de refresco de datos
            metLimpiarDatos();//Llamado al metodo de refresco de datos
        }

        private void linNuevaCueBc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metNuevaCuenta();//Llamado al metodo de refresco de datos
            metLimpiarDatos();//Llamado al metodo de refresco de datos
        }

        private void linNuevaCuentaCn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metNuevaCuenta();//Llamado al contenedor de ingreso de nuevas cuentas
            metLimpiarDatos();//Llamado al metodo de refresco de datos
        }

        private void linNuevaCuentaCc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metNuevaCuenta();//Llamado al contenedor de ingreso de nuevas cuentas
            metLimpiarDatos();//Llamado al metodo de refresco de datos
        }

        private void linNuevaCuentaCe_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metNuevaCuenta();//Llamado al contenedor de ingreso de nuevas cuentas
            metLimpiarDatos();//Llamado al metodo de refresco de datos
        }

        private void btnNuevaCuentaCc_Click(object sender, EventArgs e)
        {
          
                btnNuevaCuentaCco.Visible = false;
                btnAceptarCuentaCco.Enabled = false;
                btnAceptarCuentaCco.Visible = true;
                metLimpiarDatos();//refresca, elimina todos los datos que se encuentran en los casilleros
                //para un nuevo ingreso
            

        }
/// /////////////////////////////////////////////////////////////////////////////////////////////////////
        private void metLimpiarDatos()
        {
            //Refresca toda la pantalla para el ingreso de otra cuenta
            txtNombreCuentaCco.Clear();
            txtApeUsuarioCco.Clear();
            txtClaveOriginalCco.Clear();
            txtConfirmacionNewCco.Clear();
            txtPalabraSecretaCco.Clear();            
            txtNomUsuarioCco.Clear();
            this.ptbImagen.Image = global::Aplicacion.Properties.Resources._13;
            ptbImagen.Refresh();
            txtNomUsuarioCco.Focus();
            
        }
/// /////////////////////////////////////////////////////////////////////////////////////////////////////////
   
        private void butAceptarCambioCi_Click(object sender, EventArgs e)
        {
            //Metod para cambiar la imagen de las cuentas
            if (MessageBox.Show("¿Desea continuar con el cambio de imagen?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
                auxCom.metCambiarImagen(auxConeccion, cmbNombreCuentaCi.Text, ClasesLocales.clsManejoFilas.Image2Bytes(ptbImagenPosCi.Image));
                if (auxTipoCuenta != "Administrador")
                {
                    metMosImagenIni();
                    metCuentasUsuarios(); //metodo de autentificacion de otro usuarios 
                }
                else
                {
                    this.coleccionDeDatos2.vs_MostrarImgen.Clear();
                    metMostrarImagenes();
                }
            }
        }

        private void btnCancelarCco_Click(object sender, EventArgs e)
        {
            metPantallaBienvenida();//Llamado a la primera pantalla con el contenedor deingreso a los demas contenedores
        }

        private void butCancelarCi_Click(object sender, EventArgs e)
        {
            metPantallaBienvenida();//Llamado a la primera pantalla con el contenedor deingreso a los demas contenedores
        }

        private void linkLabel4_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metPantallaBienvenida();//Llamado a la primera pantalla con el contenedor deingreso a los demas contenedores
        }

        private void btnSelcNewImaCi_Click(object sender, EventArgs e)
        {
            metSeleccionarIma(ptbImagenPosCi);//Llamado al metodo que permite al cliente seleccionar una imagen 
        }

        private void linCambioDeImaPp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarImagen();//Llamado al metodo que permite cambiar de imgen en una cuenta ya existente
        }

        private void linCambiarImgenCu_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarImagen();//Llamado al metodo que permite cambiar de imgen en una cuenta ya existente
        }

        private void linCambiarImagenEu_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarImagen();//Llamado al metodo que permite cambiar de imgen en una cuenta ya existente
        }

        private void linkLabel12_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarImagen();//Llamado al metodo que permite cambiar de imgen en una cuenta ya existente
        }

     

        private void linCambiarImagenCn_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarImagen();//Llamado al metodo que permite cambiar de imgen en una cuenta ya existente
        }

        private void linCambiarImagenBc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarImagen();//Llamado al metodo que permite cambiar de imgen en una cuenta ya existente
        }

      

        private void linCambioContraCi_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarContraseña();//Llamado al metodo para cambiar la contraseña
        }

        private void linCambiaEstadoCi_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarEstado();//Llamado al metodod que cambia el estado de cuenta
        }

        private void linBuscaContraCi_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metBusquedaContraseña();//Llamado al metodo para cambiar la contraseña
        }

        private void linCambiarNombreCi_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metCambiarNombre();//Llamado al metodo que permite el cambio de nombre de cuenta
        }

        private void linCrearCuentaCi_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            metNuevaCuenta();//Llmado al metodo que crea una nueva cuenta
        }

        

        private void metMostrarImagenes()
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metMostrarImagenes(auxConeccion, this.coleccionDeDatos2);
            //Ejecucuion de la vista declarada en el motor debase de datos
       
        }

   
        private void button1_Click_1(object sender, EventArgs e)
        {
            metMostrarImagenes();//Actualiza las imagenes de las cuentas
          
        }

    
        private void button1_Click_2(object sender, EventArgs e)
        {
            metImagenesIngreso();
        
        }

        private void metImagenesIngreso() 
        {
            //metodo de control de imagenes 
            //se permite solo a los administradores ver todas la cuentas con
            //este metodo lo usuarios pueden ver solo sus imagenes 
            //para no alterar las de los demas
            ptbImagenPosCi.Image = ClasesLocales.clsManejoFilas.Bytes2Image(auxBytes);
            ptbImagenMosPb.Image = ptbImagenPosCi.Image;//esta imagenes son las mismas por eso 
            ptbImagenMosCe.Image = ptbImagenPosCi.Image;//se hace un solo llamado
            ptbImagenMosCc.Image = ptbImagenPosCi.Image;
            ptbImgenMosCn.Image = ptbImagenPosCi.Image;
            ptbImagenMosBc.Image = ptbImagenPosCi.Image;
        }

     

        private void comNuevoEstadoEs_SelectedValueChanged(object sender, EventArgs e)
        {
            //metodo de control del casillero de observaciones del contenedor de cambio de estado
            btnAceptarEstado.Enabled = true;
            if (cmbNuevoEstadoEs.Text == "Activo")
            txtObservacionesEs.Enabled = false;
            else
            txtObservacionesEs.Enabled = true;
            txtObservacionesEs.Clear();

        }

        private void comCuentaCc_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
            //Impedir que se escriba nada en el area de asignacion de tipo de usuarios
        }

        private void comCuentaCc_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            if (e.KeyCode == Keys.Enter)
                txtClaveActualCc.Focus();
        }

        private void comNombreCuentaCn_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
            //Impedir que se escriba nada en el area de asignacion de tipo de usuarios
        }

        private void comNombreCuentaCn_KeyDown(object sender, KeyEventArgs e)
        {
            //Reconoce un enter del teclado como una orden de salto de linea
            if (e.KeyCode == Keys.Enter)
                txtNuevoNombreCn.Focus();
        }

        private bool metControlLetras(string Mas, int Num)
        { //Metodo para el control de los casilleros solo cuando tienen una longitud apropiada
            //se activara los casilleros de las entradas de los datos
            bool ret =false;//
            if (Mas.Length >= Num)//
                ret = true;//
            return ret;//retorn un valor booleano
        }

        private void textNuevoNombreCn_KeyPress(object sender, KeyPressEventArgs e)
        {
            metAccesoCoherente(e);//se llama al control de espacios
            if (metControlLetras(txtNuevoNombreCn.Text, 2) == true)//si la longitud es la establesida
                btnCambiarNom.Enabled = true;//se habilita el boton para cambiar el nombre de la cuenta
            else
                btnCambiarNom.Enabled = false;
        }

      

        private void textNuevoNombreCn_KeyDown(object sender, KeyEventArgs e)
        {
            //El nuevo nombre de cuenta, con controles para el manejo desde teclado
            if (e.KeyCode == Keys.Enter)//Si existe un enter
                if (metControlLetras(txtNuevoNombreCn.Text, 3) == true)//y la longitud es mnimo de 3
                    btnCambiarNom.PerformClick();//se activa el boton de cambio de nombre
                else
                    MessageBox.Show("El nombre de la cuenta es demasiado corto");//si no se muestra este mensaje
        }

        private void comNombreCuentaCn_MouseClick(object sender, MouseEventArgs e)
        {//Cuando ocurred un error el textbox de ingreso de nuevo nombre se refresca
            txtNuevoNombreCn.Clear();
            btnCambiarNom.Enabled = false;

        }

        private void comCuentasBc_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
            //Impedir que se escriba nada en el area de asignacion de tipo de usuarios
        }

        private void comCuentasBc_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                txtPalabraSecretaBc.Focus();
        }

        private void textPalabraSecretaBc_KeyPress(object sender, KeyPressEventArgs e)
        {
            metAccesoCoherente(e);
            if (metControlLetras(txtPalabraSecretaBc.Text, 2) == true)
                btnAceptarBusquedaBc.Enabled = true;
            else
                btnAceptarBusquedaBc.Enabled = false;
        }

        private void textPalabraSecretaBc_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                if (metControlLetras(txtPalabraSecretaBc.Text, 3) == true)
                    btnAceptarBusquedaBc.PerformClick();
        }

   

        private void btnAceptarEstado_Click(object sender, EventArgs e)
        {
            //Si el estado actual esl mismo que el nuevo el sistema notifica y no procede con la
            //transaccion porque no tiene un fin logico
            if (MessageBox.Show("¿Desea continuar con el cambio de estado?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (txtEstadoActualEs.Text != cmbNuevoEstadoEs.Text)
                {
               
                    Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
                    auxCom.metActualizarEstados(auxConeccion, cmbCuentasEs.Text, cmbNuevoEstadoEs.Text, txtObservacionesEs.Text, auxNombreCuenta);
                    metMostrarImagenes();
                    metPresentaEstados();
                }
                else
                    MessageBox.Show("La cuenta ya esta en estado " + txtEstadoActualEs.Text, "Atencion");
            }
        }

        private void textObservacionesEs_TextChanged(object sender, EventArgs e)
        {//este metodo permite que el usuario de la cuenta ingrese una observacion solo cuando la pone en 
            //estado inactivo
            if (cmbNuevoEstadoEs.Text == "Activo")
                txtObservacionesEs.Enabled = false;
            else
                txtObservacionesEs.Enabled = true;
        }

        private void comNuevoEstadoEs_MouseClick(object sender, MouseEventArgs e)
        {
            txtObservacionesBc.Clear();//Refresca el casillero de observaciones del contenedor de cambio de estados
        }

   
        private void textObservacionesEs_KeyPress(object sender, KeyPressEventArgs e)
        {
            metControlIngreso();//Aqui esta todo el conjunto de casilleros llamando al metodo de control
            metAccesoCoherente(e);//Llamado al metodo de control de espacios
        }

      

        private void comNombreCuentaCi_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
            //Impedir que se escriba nada en el area de asignacion de tipo de usuarios
        }

        private void textPalabraSecretaCco_KeyDown(object sender, KeyEventArgs e)
        {
            //Salto de linea cuando se preciona la tecla enter
            if (e.KeyCode == Keys.Enter)
                btnAceptarCuentaCco.PerformClick();
        }

        private void comCuentasEs_SelectedValueChanged(object sender, EventArgs e)
        {
            metPresentaEstados();//Cuado se seleccion auna cuenta se muestra el estado 
            // de la misma
        }
        //Metodo para la eliminacion cuentas
        private void btnEliminarCuentas_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea eliminar la cuenta seleccionada?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                if (auxNombreCuenta == cmbCuentasEliminar.Text)
                {
                    if (MessageBox.Show("Esta cuenta esta abierta si la elimina la aplicación se cerrara: ¿Desea continuar? ", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
                        auxCom.metEliminarCuentas(auxConeccion, cmbCuentasEliminar.Text);
                        Application.Exit();
                    }
                }
                else
                {
                    Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
                    auxCom.metEliminarCuentas(auxConeccion, cmbCuentasEliminar.Text);
                    this.coleccionDeDatos2.vs_MostrarImgen.Clear();
                    metMostrarImagenes();
                }
            }
        }
        //Inicio de eliminacion de cuentas
        private void btnCancelar_Click(object sender, EventArgs e)
        {
            splEliminarCuentas.Visible = false;
            metPantallaBienvenida();

        }

        private void lklEliminarCuentas_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            splEliminarCuentas.Visible = true;
            //Estos metodos permiten que se muestren solo los contenedores
            //deseados dependiendo de la seleccion en la pantalla de bienvenida
            //Para la pantalla de seleccion 
            splBienvenida.Visible = false;
            splCambiarImagen.Visible = false;
            splBuscarContraseña.Visible = false;
            splCambioContraseña.Visible = false;
            splEstadoCuenta.Visible = false;
            splCambiarNombre.Visible = false;
            splNuevaCuenta.Visible = false;
        }

        private void cmbCuentasEliminar_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
        }     
      
    }
}
